package main;

import java.sql.*;
import java.util.*;

import modelo.dao.impl.*;
import modelo.dao.util.*;
import modelo.dto.*;

public class AppMainContato {

	public static void main(String[] args) throws SQLException {		
		//getObjectById();
		//buscarTodos();
		
		/*char sexo = 'M';
		
		System.out.println(Character.toString(sexo));
		*/
		//buscarByGrupoAndTelefoneAndOperadora();
		//buscarByNome1();
		
		//buscarByNome();
		//cadastrar();
		//getUltimoObjeto();
		
	}	
	
	public static void cadastrar() throws SQLException {				
		Contato contato = new Contato();
		contato.setNome("Pedro");
		contato.setSobreNome("Jose");
		contato.setSexo("M");
		contato.setComentario("Pedro");
		contato.adicionarEmail("pedro@gmail.com");
		contato.adicionarGrupo(7);
		
		ContatoImpl ci = new ContatoImpl(ConexaoMySQL.getConnection());
		
		if(ci.cadastrar(contato)) {
			System.out.println(contato.toString());
		}
		
	}
	
	public static void getUltimoObjeto() throws SQLException {
		ContatoImpl ci = new ContatoImpl(ConexaoMySQL.getConnection());
		Contato contato = null;
		
		if((contato = ci.getUltimoObjeto()) != null) {
			System.out.println(contato.toString());
		}
		
	}
	
	public static void buscarByGrupoAndTelefoneAndOperadora() throws SQLException {
		
		ContatoImpl ci = new ContatoImpl(ConexaoMySQL.getConnection());
		
		Contato contato = new Contato(216);	
		Contato c = ci.buscarByGrupoAndTelefoneAndOperadora(contato);

		System.out.println(c);
		
		/*
		for(Telefone t : c.getTelefones()) {
			System.out.printf("%d %s \n",t.getCodigo(), t.getNumero());
		}
		*/
	}
	
	public static void getObjectById() throws SQLException {
		
		ContatoImpl ci = new ContatoImpl(ConexaoMySQL.getConnection());
		Contato contato = new Contato(85);
	
		contato = ci.getObjetoById(contato);
		
		System.out.println(contato);
		
		
	}
	    
    public static void buscarByNome() throws SQLException {
    	ContatoImpl ic = new ContatoImpl(ConexaoMySQL.getConnection());
    	
    	Contato contato = new Contato();
    	contato.setNome("jo");
    	//contato.setSobreNome("a");
    	
    	List<Contato> contatos = ic.buscarByNome(contato);
    	
    	System.out.println(contatos.size());
    	
    	for(Contato c : contatos) {
    		System.out.println("Nome: "+c.getNome());
    		System.out.println("SobreNome: "+c.getSobreNome());
    	}
    	
    }

	public static void buscarTodos() throws SQLException {
		
		ContatoImpl ci = new ContatoImpl(ConexaoMySQL.getConnection());
	
		List<Contato> contatos = ci.buscarTodos();
		
		for(Contato c : contatos) {
			System.out.println(c);	
		}
						
	}	
	
}
